声明 模块 "os" {

    //@@{ Cpu信息_:CpuInfo }
    接口 Cpu信息_ {

        //@@{ 模型:model }
        模型: 文字;

        //@@{ 速度:speed }
        速度: 数字;

        //@@{ 时间相关:times }
        时间相关: {

            //@@{ 用户:user }
            用户: 数字;

            //@@{ 良好模式时间:nice }
            良好模式时间: 数字;

            //@@{ 系统模式时间:sys }
            系统模式时间: 数字;

            //@@{ 闲置:idle }
            闲置: 数字;

            //@@{ 中断请求模式时间:irq }
            中断请求模式时间: 数字;
        };
    }

    //@@{ 网络接口基_:NetworkInterfaceBase }
    接口 网络接口基_ {

        //@@{ 地址:address }
        地址: 文字;

        //@@{ 子网掩码:netmask }
        子网掩码: 文字;

        //@@{ 局域网地址:mac }
        局域网地址: 文字;

        //@@{ 内部:internal }
        内部: 真假;

        //@@{ 无分类编址:cidr }
        无分类编址: 文字 | 空值;
    }

    //@@{ 网络接口信息IPv4_:NetworkInterfaceInfoIPv4, 网络接口基_:NetworkInterfaceBase }
    接口 网络接口信息IPv4_ 扩展 网络接口基_ {

        //@@{ 家族:family }
        家族: "IPv4";
    }

    //@@{ 网络接口信息IPv6_:NetworkInterfaceInfoIPv6, 网络接口基_:NetworkInterfaceBase }
    接口 网络接口信息IPv6_ 扩展 网络接口基_ {

        //@@{ 家族:family }
        家族: "IPv6";

        //@@{ 范围Id:scopeid }
        范围Id: 数字;
    }

    //@@{ 用户信息_:UserInfo }
    接口 用户信息_<T> {

        //@@{ 用户名:username }
        用户名: T;

        //@@{ 用户Id:uid }
        用户Id: 数字;

        //@@{ 组Id:gid }
        组Id: 数字;

        //@@{ 界面:shell }
        界面: T;

        //@@{ 主目录:homedir }
        主目录: T;
    }

    //@@{ 网络接口信息_:NetworkInterfaceInfo, 网络接口信息IPv4_:NetworkInterfaceInfoIPv4 }
    //@@{ 网络接口信息IPv6_:NetworkInterfaceInfoIPv6 }
    类型 网络接口信息_ = 网络接口信息IPv4_ | 网络接口信息IPv6_;

    //@@{ 主机名:hostname }
    函数 主机名(): 文字;

    //@@{ 平均负载:loadavg }
    函数 平均负载(): 数字[];

    //@@{ 运行时间:uptime }
    函数 运行时间(): 数字;

    //@@{ 内存管理:freemem }
    函数 内存管理(): 数字;

    //@@{ 系统内存:totalmem }
    函数 系统内存(): 数字;

    //@@{ 处理器组:cpus, Cpu信息_:CpuInfo }
    函数 处理器组(): Cpu信息_[];

    //@@{ 类型:type }
    函数 类型(): 文字;

    //@@{ 释放:release }
    函数 释放(): 文字;

    //@@{ 网络接口:networkInterfaces, 网络接口信息_:NetworkInterfaceInfo }
    函数 网络接口(): { [索引: 文字]: 网络接口信息_[] };

    //@@{ 主目录:homedir }
    函数 主目录(): 文字;

    //@@{ 用户信息:userInfo, 编码:encoding, "缓冲区":"buffer", 用户信息_:UserInfo, 缓冲区_:Buffer }
    函数 用户信息(选项组: { 编码: "缓冲区" }): 用户信息_<缓冲区_>;

    //@@{ 用户信息:userInfo, 编码:encoding, 用户信息_:UserInfo }
    函数 用户信息(选项组?: { 编码: 文字 }): 用户信息_<文字>;

    //@@{ 常量组:constants }
    常量 常量组: {

        //@@{ __UV_UDP_复用地址__:UV_UDP_REUSEADDR }
        __UV_UDP_复用地址__: 数字;

        //@@{ 信号组:signals }
        信号组: {

            //@@{ __信号_挂机信号__:SIGHUP }
            __信号_挂机信号__: 数字;

            //@@{ __信号_键盘中断__:SIGINT }
            __信号_键盘中断__: 数字;

            //@@{ __信号_退出键盘__:SIGQUIT }
            __信号_退出键盘__: 数字;

            //@@{ __信号_非法指令__:SIGILL }
            __信号_非法指令__: 数字;

            //@@{ __信号_断点陷阱__:SIGTRAP }
            __信号_断点陷阱__: 数字;

            //@@{ __信号_中止信号__:SIGABRT }
            __信号_中止信号__: 数字;

            //@@{ __信号_物联网信号__:SIGIOT }
            __信号_物联网信号__: 数字;

            //@@{ __信号_总线错误__:SIGBUS }
            __信号_总线错误__: 数字;

            //@@{ __信号_浮点异常__:SIGFPE }
            __信号_浮点异常__: 数字;

            //@@{ __信号_杀死信号__:SIGKILL }
            __信号_杀死信号__: 数字;

            //@@{ __信号_自定义1__:SIGUSR1 }
            __信号_自定义1__: 数字;

            //@@{ __信号_无效内存引用__:SIGSEGV }
            __信号_无效内存引用__: 数字;

            //@@{ __信号_自定义2__:SIGUSR2 }
            __信号_自定义2__: 数字;

            //@@{ __信号_管道信号__:SIGPIPE }
            __信号_管道信号__: 数字;

            //@@{ __信号_定时器信号__:SIGALRM }
            __信号_定时器信号__: 数字;

            //@@{ __信号_终止信号__:SIGTERM }
            __信号_终止信号__: 数字;

            //@@{ __信号_子终止信号__:SIGCHLD }
            __信号_子终止信号__: 数字;

            //@@{ __信号_堆栈错误__:SIGSTKFLT }
            __信号_堆栈错误__: 数字;

            //@@{ __信号_继续信号__:SIGCONT }
            __信号_继续信号__: 数字;

            //@@{ __信号_进程停止__:SIGSTOP }
            __信号_进程停止__: 数字;

            //@@{ __信号_终端输入停止__:SIGTSTP }
            __信号_终端输入停止__: 数字;

            //@@{ __信号_后台终端输入__:SIGTTIN }
            __信号_后台终端输入__: 数字;

            //@@{ __信号_后台终端输出__:SIGTTOU }
            __信号_后台终端输出__: 数字;

            //@@{ __信号_条件套接字__:SIGURG }
            __信号_条件套接字__: 数字;

            //@@{ __信号_CPU超时__:SIGXCPU }
            __信号_CPU超时__: 数字;

            //@@{ __信号_文件大小超限__:SIGXFSZ }
            __信号_文件大小超限__: 数字;

            //@@{ __信号_虚拟时钟__:SIGVTALRM }
            __信号_虚拟时钟__: 数字;

            //@@{ __信号_计时器过期__:SIGPROF }
            __信号_计时器过期__: 数字;

            //@@{ __信号_窗口大小调整__:SIGWINCH }
            __信号_窗口大小调整__: 数字;

            //@@{ __信号_IO信号__:SIGIO }
            __信号_IO信号__: 数字;

            //@@{ __信号_可移植信号__:SIGPOLL }
            __信号_可移植信号__: 数字;

            //@@{ __信号_电源故障__:SIGPWR }
            __信号_电源故障__: 数字;

            //@@{ __信号_系统错误__:SIGSYS }
            __信号_系统错误__: 数字;

            //@@{ __信号_系统异常__:SIGUNUSED }
            __信号_系统异常__: 数字;
        };

        //@@{ 错误编号:errno }
        错误编号: {

            //@@{ __错误_参数过长__:E2BIG }
            __错误_参数过长__: 数字;

            //@@{ __错误_权限不足__:EACCES }
            __错误_权限不足__: 数字;

            //@@{ __错误_地址已使用__:EADDRINUSE }
            __错误_地址已使用__: 数字;

            //@@{ __错误_地址不能用__:EADDRNOTAVAIL }
            __错误_地址不能用__: 数字;

            //@@{ __错误_网络地址簇不支持__:EAFNOSUPPORT }
            __错误_网络地址簇不支持__: 数字;

            //@@{ __错误_没有数据__:EAGAIN }
            __错误_没有数据__: 数字;

            //@@{ __错误_即将连接__:EALREADY }
            __错误_即将连接__: 数字;

            //@@{ __错误_文件描述符不可用__:EBADF }
            __错误_文件描述符不可用__: 数字;

            //@@{ __错误_无效数据信息__:EBADMSG }
            __错误_无效数据信息__: 数字;

            //@@{ __错误_资源占用__:EBUSY }
            __错误_资源占用__: 数字;

            //@@{ __错误_操作取消__:ECANCELED }
            __错误_操作取消__: 数字;

            //@@{ __错误_没有子进程__:ECHILD }
            __错误_没有子进程__: 数字;

            //@@{ __错误_连接被终止__:ECONNABORTED }
            __错误_连接被终止__: 数字;

            //@@{ __错误_连接被拒绝__:ECONNREFUSED }
            __错误_连接被拒绝__: 数字;

            //@@{ __错误_连接被重置__:ECONNRESET }
            __错误_连接被重置__: 数字;

            //@@{ __错误_资源死锁被避免__:EDEADLK }
            __错误_资源死锁被避免__: 数字;

            //@@{ __错误_需要目的地址__:EDESTADDRREQ }
            __错误_需要目的地址__: 数字;

            //@@{ __错误_参数超过作用域__:EDOM }
            __错误_参数超过作用域__: 数字;

            //@@{ __错误_超过磁盘指标__:EDQUOT }
            __错误_超过磁盘指标__: 数字;

            //@@{ __错误_文件已存在__:EEXIST }
            __错误_文件已存在__: 数字;

            //@@{ __错误_无效指针地址__:EFAULT }
            __错误_无效指针地址__: 数字;

            //@@{ __错误_文件太大__:EFBIG }
            __错误_文件太大__: 数字;

            //@@{ __错误_主机不可达__:EHOSTUNREACH }
            __错误_主机不可达__: 数字;

            //@@{ __错误_识别码已移除__:EIDRM }
            __错误_识别码已移除__: 数字;

            //@@{ __错误_非法字节序__:EILSEQ }
            __错误_非法字节序__: 数字;

            //@@{ __错误_操作已进行中__:EINPROGRESS }
            __错误_操作已进行中__: 数字;

            //@@{ __错误_调用被中断__:EINTR }
            __错误_调用被中断__: 数字;

            //@@{ __错误_无效参数__:EINVAL }
            __错误_无效参数__: 数字;

            //@@{ __错误_IO错误__:EIO }
            __错误_IO错误__: 数字;

            //@@{ __错误_已经连接__:EISCONN }
            __错误_已经连接__: 数字;

            //@@{ __错误_路径是目录__:EISDIR }
            __错误_路径是目录__: 数字;

            //@@{ __错误_路径符号连接超额__:ELOOP }
            __错误_路径符号连接超额__: 数字;

            //@@{ __错误_打开文件太多__:EMFILE }
            __错误_打开文件太多__: 数字;

            //@@{ __错误_文件硬连接太多__:EMLINK }
            __错误_文件硬连接太多__: 数字;

            //@@{ __错误_信息太长__:EMSGSIZE }
            __错误_信息太长__: 数字;

            //@@{ __错误_多跳被尝试__:EMULTIHOP }
            __错误_多跳被尝试__: 数字;

            //@@{ __错误_文件名太长__:ENAMETOOLONG }
            __错误_文件名太长__: 数字;

            //@@{ __错误_网络关闭__:ENETDOWN }
            __错误_网络关闭__: 数字;

            //@@{ __错误_连接被网络终止__:ENETRESET }
            __错误_连接被网络终止__: 数字;

            //@@{ __错误_网络不可达__:ENETUNREACH }
            __错误_网络不可达__: 数字;

            //@@{ __错误_系统打开太多文件__:ENFILE }
            __错误_系统打开太多文件__: 数字;

            //@@{ __错误_没有有效缓存__:ENOBUFS }
            __错误_没有有效缓存__: 数字;

            //@@{ __错误_没有可用数据__:ENODATA }
            __错误_没有可用数据__: 数字;

            //@@{ __错误_没有设备__:ENODEV }
            __错误_没有设备__: 数字;

            //@@{ __错误_没有文件或目录__:ENOENT }
            __错误_没有文件或目录__: 数字;

            //@@{ __错误_执行格式错误__:ENOEXEC }
            __错误_执行格式错误__: 数字;

            //@@{ __错误_没有可用锁__:ENOLCK }
            __错误_没有可用锁__: 数字;

            //@@{ __错误_链接在服务__:ENOLINK }
            __错误_链接在服务__: 数字;

            //@@{ __错误_内存不足__:ENOMEM }
            __错误_内存不足__: 数字;

            //@@{ __错误_类型没有信息__:ENOMSG }
            __错误_类型没有信息__: 数字;

            //@@{ __错误_协议不可用__:ENOPROTOOPT }
            __错误_协议不可用__: 数字;

            //@@{ __错误_设备上没有可用空间__:ENOSPC }
            __错误_设备上没有可用空间__: 数字;

            //@@{ __错误_没有可用流资源__:ENOSR }
            __错误_没有可用流资源__: 数字;

            //@@{ __错误_资源不是流__:ENOSTR }
            __错误_资源不是流__: 数字;

            //@@{ __错误_功能没实现__:ENOSYS }
            __错误_功能没实现__: 数字;

            //@@{ __错误_没有连接__:ENOTCONN }
            __错误_没有连接__: 数字;

            //@@{ __错误_路径不是目录__:ENOTDIR }
            __错误_路径不是目录__: 数字;

            //@@{ __错误_目录非空__:ENOTEMPTY }
            __错误_目录非空__: 数字;

            //@@{ __错误_不是套接字__:ENOTSOCK }
            __错误_不是套接字__: 数字;

            //@@{ __错误_操作不支持__:ENOTSUP }
            __错误_操作不支持__: 数字;

            //@@{ __错误_不适当的IO操作__:ENOTTY }
            __错误_不适当的IO操作__: 数字;

            //@@{ __错误_没有设备或地址__:ENXIO }
            __错误_没有设备或地址__: 数字;

            //@@{ __错误_操作套接字不支持__:EOPNOTSUPP }
            __错误_操作套接字不支持__: 数字;

            //@@{ __错误_值太大无法储存__:EOVERFLOW }
            __错误_值太大无法储存__: 数字;

            //@@{ __错误_操作没有许可__:EPERM }
            __错误_操作没有许可__: 数字;

            //@@{ __错误_管道破裂__:EPIPE }
            __错误_管道破裂__: 数字;

            //@@{ __错误_协议错误__:EPROTO }
            __错误_协议错误__: 数字;

            //@@{ __错误_协议不支持__:EPROTONOSUPPORT }
            __错误_协议不支持__: 数字;

            //@@{ __错误_协议类型错误__:EPROTOTYPE }
            __错误_协议类型错误__: 数字;

            //@@{ __错误_结果太大__:ERANGE }
            __错误_结果太大__: 数字;

            //@@{ __错误_文件系统是只读的__:EROFS }
            __错误_文件系统是只读的__: 数字;

            //@@{ __错误_无效查询__:ESPIPE }
            __错误_无效查询__: 数字;

            //@@{ __错误_没有类似进程__:ESRCH }
            __错误_没有类似进程__: 数字;

            //@@{ __错误_文件处理是稳定的__:ESTALE }
            __错误_文件处理是稳定的__: 数字;

            //@@{ __错误_过期时钟__:ETIME }
            __错误_过期时钟__: 数字;

            //@@{ __错误_连接超时__:ETIMEDOUT }
            __错误_连接超时__: 数字;

            //@@{ __错误_文本文件占用__:ETXTBSY }
            __错误_文本文件占用__: 数字;

            //@@{ __错误_操作被屏蔽__:EWOULDBLOCK }
            __错误_操作被屏蔽__: 数字;

            //@@{ __错误_不合适的连接__:EXDEV }
            __错误_不合适的连接__: 数字;
        };

        //@@{ 优先级:priority }
        优先级: {

            //@@{ __优先_较低__:PRIORITY_LOW }
            __优先_较低__: 数字;

            //@@{ __优先_下面_正常__:PRIORITY_BELOW_NORMAL }
            __优先_下面_正常__: 数字;

            //@@{ __优先_正常__:PRIORITY_NORMAL }
            __优先_正常__: 数字;

            //@@{ __优先_上面_正常__:PRIORITY_ABOVE_NORMAL }
            __优先_上面_正常__: 数字;

            //@@{ __优先_较高__:PRIORITY_HIGH }
            __优先_较高__: 数字;

            //@@{ __优先_最高__:PRIORITY_HIGHEST }
            __优先_最高__: 数字;
        }
    };

    //@@{ 处理器架构:arch }
    函数 处理器架构(): 文字;

    //@@{ 平台:platform, 平台_:Platform }
    函数 平台(): NodeJS.平台_;

    //@@{ 临时目录:tmpdir }
    函数 临时目录(): 文字;

    //@@{ __行末标志__:EOL }
    常量 __行末标志__: 文字;

    //@@{ 字节顺序:endianness, "__大端__":"BE", "__小端__":"LE" }
    函数 字节顺序(): "__大端__" | "__小端__";
    /**
     * Gets the priority of a process.
     * Defaults to current process.
     */

    //@@{ 获得优先权:getPriority }
    函数 获得优先权(pid?: 数字): 数字;
    /**
     * Sets the priority of the current process.
     * @param priority Must be in range of -20 to 19
     */

    //@@{ 设置优先级:setPriority }
    函数 设置优先级(优先级: 数字): 无值;
    /**
     * Sets the priority of the process specified process.
     * @param priority Must be in range of -20 to 19
     */

    //@@{ 设置优先级:setPriority }
    函数 设置优先级(pid: 数字, 优先级: 数字): 无值;
}
